/**
 * Interfície que mostra els mètodes del servidor
 * Definirem tots els mètodes de negoci del subsistema de conexió
 * @author Grup TDP 1X4J
 */
package edu.uoc.tdp.common;

import edu.uoc.tdp.beans.conexio.Administrador;
import edu.uoc.tdp.beans.conexio.Estudiant;
import edu.uoc.tdp.beans.conexio.ResponsableEvents;
import edu.uoc.tdp.beans.conexio.Usuari;
import java.rmi.RemoteException;
import java.util.List;

public interface RemotConexioInterface extends java.rmi.Remote {

    /**
     * Retorna un Usuari a partir del seu Id Intern
     * @param Id identificador intern de l'usuari a consultar
     * @return Usuari
     * @exception RemoteException
     * @exception EOlympicsException
     */    
    Usuari getUsuari(int IdUsu) throws RemoteException, 
            EOlympicsException;
    
    /**
     * Retorna un Usuari a partir del seu Identificador i contrassenya
     * @param pIdUsuari Identificador de l'usuari a consultar
     * @param pPwd Contrassenya de l'usuari a consultar
     * @return Usuari
     * @exception RemoteException
     * @exception EOlympicsException
     */    
    Usuari getUsuari(String pIdUsuari, String pPwd) throws RemoteException, 
            EOlympicsException;
    
    /**
     * Retorna un Administrador a partir del seu Id
     * @param Id identificador de l'Administrador a consultar
     * @return Administrador
     * @exception RemoteException
     * @exception EOlympicsException
     */    
    Administrador getAdministrador(int IdAdm) throws RemoteException, 
            EOlympicsException;
    
    /**
     * Retorna un Administrador a partir del seu Identificador i contrassenya
     * @param pIdAdmin Identificador de l'administrador a consultar
     * @param pPwd Contrassenya de l'administrador a consultar
     * @return Administrador
     * @exception RemoteException
     * @exception EOlympicsException
     */    
    Administrador getAdministrador(String pIdAdmin, String pPwd) throws RemoteException, 
            EOlympicsException;
    
    /**
     * Retorna un Responsable d'events a partir del seu Id
     * @param Id identificador de l'Administrador a consultar
     * @return Administrador
     * @exception RemoteException
     * @exception EOlympicsException
     */    
    ResponsableEvents getResponsableEvents(int IdREv) throws RemoteException, 
            EOlympicsException;
    
    /**
     * Retorna un Responsable d'Events a partir del seu Identificador i contrassenya
     * @param pIdRespEv Identificador del responsable d'events a consultar
     * @param pPwd Contrassenya del responsable d'events a consultar
     * @return ResponsableEvents
     * @exception RemoteException
     * @exception EOlympicsException
     */    
    ResponsableEvents getResponsableEvents(String pIdRespEv, String pPwd) throws RemoteException, 
            EOlympicsException;
    
    /**
     * Retorna un Estudiant a partir del seu Id
     * @param Id identificador de l'estudiant a consultar
     * @return Estudiant
     * @exception RemoteException
     * @exception EOlympicsException
     */    
    Estudiant getEstudiant(int IdEst) throws RemoteException, 
            EOlympicsException;
    
    /**
     * Retorna un Estudiant a partir del seu Identificador i contrassenya
     * @param pIdEst Identificador de l'Estudiant a consultar
     * @param pPwd Contrassenya de l'Estudiant a consultar
     * @return Estudiant
     * @exception RemoteException
     * @exception EOlympicsException
     */    
    Estudiant getEstudiant(String pIdEst, String pPwd) throws RemoteException, 
            EOlympicsException;

    /**
     * Retorna una llista dels Usuaris registrats que no estan de baixa
     * @return Llista d'Usuaris
     * @exception RemoteException
     * @exception EOlympicsException
     */
    List<Usuari> getLlistaUsuaris() throws RemoteException, 
            EOlympicsException;
    
    /**
     * Canvia l'estat d'un usuari a Bloquejat
     * @param pIdIntern Identificador intern de l'usuari
     * @return true si l'actualització s'ha fet i guardat correctament
     * @exception RemoteException
     * @exception EOlympicsException
     * @exception EOlympicsExceptionConnexioLogin
     */    
    public boolean setBloqueigUsuari(int pIdIntern) throws RemoteException, 
            EOlympicsException, EOlympicsExceptionConnexioLogin;                    
    
    
}